In the conventional local area network comprising a plurality of interconnected workstations or personal computers most of the execution time and processing power of the computers are wasted while waiting idly for slow input/output devices. For example, in the time intervals between successive keystrokes at the keyboard a central procesing unit would be able to execute thousands of instructions if there were some way to put the unit to use instead of compelling it merely to wait for the next keystroke. Other input/output operations such as mouse movements, printing tasks and disk drive activities are similarly many orders of magnitude slower than CPU (central processing unit) operations and result in a further waste of much of the running time and computational power of the computer. Furthermore, when the CPU eventually does get the opportunity to process a keystroke code, mouse movement, printer command or disk access the CPU can finish its share of the input/output task relatively quickly so that the unit is soon back to its idle waiting state. Also, at any typical instant some of the workstations may not be operated by the respective users, thereby further contributing to the waste of computer time and power.
Another problem with conventional local area network systems is that each individual workstations or personal computer lacks the power to execute within a reasonable time those large compute-intensive applications which frequently arise in science, engineering, financial analysis, image processing and other fields. Heretofore such applications required processing either by mainframes or by network servers accessed by remote procedure calls in an expensive distributed computing environment.